2005/10/15

いろいろな“ジオコード” (ロカポ誕生の記録:5)

ロカポを開発するにあたり、ロカポの先輩にあたる現在ある“ジオコード“(=ここでは位置情報をコード化したもの、と広い意味でとらえています)を調べてみた。
「緯度経度は面倒くさい、もっと簡単なコードを」と考えるのは誰でも同じで、本当に数多くの「ジオコード」が提案されている。
ここでは本当はもっと沢山あるのでしょうが、私が調べた範囲で、これらのコード達を敬意をこめて紹介いたします。(なお、それぞれにコメントをつけていますが、私のコメント中に記載したメリット、デメリットはあくまでも私個人の感想であり、該当するコードを非難あるいは評価したものではないことをご了承下さい。)

マップコード株式会社デンソーが開発したジオコード。日本全国を基準となる複数の正方形に分割し、それぞれの正方形を30マス×30マス=900マスの正方形で分割、と分割を3レベル繰り返し、日本全国の任意の位置(正確には約30メートル×30メートルのエリア)を10桁の整数値で表せるようにしたもの。さらに高精度用の拡張フォーマットとして、3メートル四方の領域を表す精度には、元の10桁+「*(アスタリスク)」+2桁の数字で12桁のフォーマットで表す仕様が用意されている。大きな特徴としては、もとの基準正方形の選択に人口密度等を考慮に入れて、首都圏や大都市でのマップコードが表す値が小さくなるように設計されていることである。これにより、例えば首都圏のマップコードは場所により4桁で表現できる。(上位6桁はゼロになるので表記を省略している)
コンセプトとしてはビデオ予約のGコードと同じ考え方であり、ジオコードとしてこのアイデアを取り入れたものはおそらくマップコードが初めてであろう。
欠点は対象領域が日本国内に限定されていることである。マップコードのサイトでは、海外向けも検討しているとされているが、10桁の桁数と30メートルの精度を確保する場合、対象とできる面積には自ずと限界がある。各国で導入したとしても、それぞれの国でのマップコード間には関連性はなく、独立したものとなると予想される。

MGコード(マップルガイドコード)
昭文社発行の各種ガイドブック・地図に掲載されている7~8桁のコードナンバーであり、正確には緯度経度のように任意の地点を表記可能なジオコードではない。ただし、ツーリングマップルの普及に伴って、バイク乗りの間で普及している。

Sonyソニーもジオコードの特許をアメリカで取得している(US Patent 6,005,504)。簡単に説明すると、緯度、経度をともに0.1秒単位のステップに変換し、二進数に変換、緯度を上位桁経度を下位桁にして二進数の文字列を連結する。この二進数の数を37進数で表すことにより、9桁のコードで表現する。37進数の用いる文字は数字、英数字、および「=(イコール)」の計37文字である。
ソニーの米国特許取得のポイントとしては、誤り訂正符号をつけるというアイデアがある。この場合は9桁には収まらないが、例えばコードを10桁にし、最後の一桁をチェックディジットとすることが可能である。
このようにランダムなコードの入力は誤り訂正符号があると入力ミスを検出しやすいという利点がある。

The Natural Area Coding System (NAC)
カナダのベンチャー企業、NAC Geographic Products Inc. のXinhang Shen博士が開発したジオコード。Webによると1995年からのようである。
私が見たジオコードの中でもっとも優れていると思う。
全世界の緯度と経度それぞれを対象に、30で順に分割し、更に30で分割、とこれを繰り返す。他のジオコードと違って、領域を面で分割していくのではなく、緯度および経度おという二つの二次元のデータを30づつ分割している。
コードの表記は、緯度、経度それぞれ独立しており、30進法で表記している。この表記にはアルファベット大文字の子音20個+数字が使われている。使われていない文字は母音の(A,E,I,O,U,)と(Y)である。IやOが使われていないので、数字の1や0との間違いがなくなる、という優れたアイデアがある。
Shen氏はこれをユニバーサルアドレスとして、住所代わりに使うアイデア等を提唱している。
標準は5桁+スペース+5桁で経度方向0.0000148度(=約1.6メートル)、緯度方向はその半分の分解能を実現しており、ジオコードの中では最も精度が高い。さらに6桁×6桁にするとその30倍の精度を実現できる。仕様上、桁数に制限がないので、任意の精度を選択可能である。
また、緯度、経度がスペースを挟んで並んでいるか、拡張仕様としてスペースをもう一つ挟んでZ方向(高さ方向)もデータを記述できるようになっている。
また、ハイフンを組合わせることで点ではなくエリアを表現できるようになっている。
また、30進法を使用していることで、角度(360度)との割り算の際の親和性が非常に良い。
私がNACの存在を知ったのはロカポの開発後であるが、ロカポの目指すものとコンセプトは一番近かったのがこのNACである。

Conpact text Encoding (Microsoft)
NACからのライセンスのオファーを断った後、マイクロソフトが独自に特許申請していた曰く付きのジオコード。NACとの違いは、大文字ではなく小文字を使っていること、使用しない子音がYではなくてLであること、緯度と経度情報の間にスペースがないこと、緯度経度の順序が逆であること、のみである。コンセプト的にはまったくNACと同じといえる。

新ジオコード(アジア航測)
領域をタイル型に分割していき、二進数で表し、最終的なコードを「もいろぞちわもぞ」などのかな文字によるコードで表すものである。かな文字64文字を使用することで、64進法をとり、二進数との親和性が良い。(7ビットを一文字に割り当てる)。また、航空写真の会社らしく、緯線経線で囲まれた領域の高緯度側が小さくなる歪みまで計算に入れている。

ナビゲーションコード(アイシン・エィ・ダブリュ)
度、分、秒のうち、度の部分をデータベース化し、都市名等で置き換えたコード。コンセプトを簡単にいうと、「都市名 分 秒 分 秒」という構成になるコードである

BINGEO(United States Patent 6,552,670)
マップコードや各種メッシュコードのように領域をメッシュで切っていくタイプのジオコード。ただし、メッシュは正方形で4分割で各領域に00、01、10、11を割り当てている。さらに各正方形が4分割、と所望の精度になるまで分割していく。一つの分割につき2ビット必要である。このコードの特徴はその名の通り二進数との親和性が高い、というより二進数表現そのものであることである。

その他
政府や各種団体が定めたメッシュコードが多数ある。

続く...

0 件のコメント: